home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Euroscene 1
/
Euroscene 1.iso
/
diskmags
/
finnish
/
saku2_9_93.lha
/
txt
/
Pilvi
< prev
next >
Wrap
Text File
|
1992-09-02
|
3KB
|
80 lines
6
1*
Pilven tekoa AMOSilla
Ei, nyt ei todellakaan käsitellä sen huumaavan valkoisen jauheen tekoa,
vaan yritetään matkia luonnon tapaa tuottaa erilaisia ilmiöitä.
Tapaa jota käytetään myös esimerkki ohjelmassa kutsutaan
nimellä KESKIPISTEEN POIKKEUTUS menetelmä. Tällä systeemillä
voidaan saada aikaan esim. pilviä, vuoristoja, tai vaikka maapallon
kartta.
Jos katsotaan vaikka vuoristoa, havaitaan siinä tietysti korkeita ja
matalia kohtia. Muutokset eivät ole yleensä jyrkkiä, vaan poukkoilevat
satunnaisuuden sanelemana pisteestä A pisteeseen B. Karkea luonnos
tästä on että vedetään viiva kahden pisteen välille, ja tarkastellaan
pisteiden/viivan keskikohtaa. Huomataan että keskikohdasta C saatu
arvo (korkeus) on A ja B pisteiden summa jaettuna kahdella. C=(A+B)/2
No, seuraavaksi lisätään tai vähennetään tästä tuloksesta joku
sopiva luku D, jolla saadaan hiukan muutosta tulokseen C.
Tämä luku D kannattaa arpoa satunnaisluku generaattorilla (D=RND(10)-5)
Tuo viimeinen -5 mahdollistaa sen että D:n arvoksi saadaan luku
väliltä -5....5.
Äskeisten temppujen avulla saatiin siis uusi piste viivalle satunnaisella
keskipisteen poikkeutuksella. ( Koko kaavahan oli C=(A+B)/2+D )
Nyt kun meillä on jo kolme pistettä voidaan jatkaa lisä epätasasuuksien
eli pisteiden tekemistä. Jatko hoituu täsmälleen samalla lailla
kuin ensimmäinenkin lisäpiste C, vähennetään vain satunnais luvun
osuutta jotta "viivasta" ei tulisi liian epätasaista.
Äsken kerrotulla hommalla saa aikaan sopivasti heittelehtivän
viivan pisteeatä A pisteeseen B. Samoilla säänöillä saadaan myös
otsikossa mainittu pilvi aikaan. Rosoisen viivan ollessa 2 ulotteinen,
pilvi "fractaali" on 3 ulotteinen. Pilvi fractaali on alue jolla
on leveys ,korkeus ja syvyys. Syvyys esitetään eri värisävyin
valkeasta siniseen. Pilviesimerkissä syvyys eli väri on se mitä
muutetaan.
Kuva voisi selventää käytettyä laskentatapaa.
A1---n---A2
| \ / |
| \ / |
| \ / |
w k e
| / \ |
| / \ |
| / \ |
A3---s---A4
A1-4 ovat vanhoja pisteitä. n,e,s,w,k pisteet lasketaan kuvan
esittämän yhdistävien viivojen mukaan.
n=(A1+A2)/2+x
w=(A1+A3)/2+x x=satunnaisluku (tietysti eri joka laskussa)
k=(A1+A2+A3+A4)/4+r
jne.......
Näin tekemällä saadaan ruudusta 4 uutta ruutua joille toimenpidettä
jatketaan. Koska jokainen piste on riippuvainen vierus toveristaan
saadaan koko alue "yhtenäiseksi".
Ohjelmointiteknisiä juttuja ei kannata lähteä selittämään tässä vaan
jokainen tutkikoon tekstimuodossa olevaa Pilvi.asc listausta.
Esimerkki on tehty AMOSilla ja sen lataaminen onnistuu MERGE ASCII
valikon kautta.
Muilla kielillä ohjelmoijat voivat helposti soveltaa esimerkki-
listauksesta.
Katsotaan kuka saa aiheesta näppärimmän ohjelman aikaan. Ohjelmointi-
kieli vapaa.
Ohjelmatuotteet voi lähettää SAKUn "toimitukseen", disketiltä
löytyy varmasti osoite.
[Ed. huom.: ko. ohjelma löytyy hakemistosta txt/ nimellä pilvi.amos,
mutta se on myös lehden seuraava artikkeli. Saat ohjelman talletettua
omalle levyllesi klikkaamalla diski-ikonia (gadgettia) valittuasi
ensin ohjelmalistauksen Sakuun. (Hakemistosta tai nuolinäppäimistä).
HUOM! Ennen ohjelman lataamista Amosiin se tarvitsee
pientä editointia (poista Sakun kommentit, sivunumerot ja
yhdistä kaksi riviä ohjelman alkupuolella (alempi rivi on kommentoitu)]
Jari Jokivuori